// Image Format Loader
// (c) jimon game studio

#ifndef JEH_IIMAGEFORMATLOADER
#define JEH_IIMAGEFORMATLOADER

#include "jeUnknown.h"
#include "IBuffer.h"
#include "IImage.h"

namespace je
{
	namespace video
	{
		//! Image Format
		enum ImageFormat
		{
			//! Png Format
			IF_PNG
		};

		//! Format Loader
		class IImageFormatLoader:public je::jeUnknown
		{
		public:
			//! Destructor
			virtual ~IImageFormatLoader()
			{
			}


			//! Load Image
			virtual IImage * LoadBuffer(core::IBuffer * DataBuffer) = 0;

			//! Save Image
			virtual void SaveBuffer(core::IBuffer * DataBuffer,IImage * Image) = 0;

			//! Return true if image loader can work with this data
			virtual u1 CanWorkWithThis(core::IBuffer * DataBuffer) = 0;

			//! Return Image Format
			virtual ImageFormat GetImageFormat() = 0;
		};
	}
}

#endif
